A treatment of higher-order features in logic programming

نویسنده

  • Gopalan Nadathur
چکیده

The logic programming paradigm provides the basis for a new intensional view of higherorder notions. This view is realized primarily by employing the terms of a typed lambda calculus as representational devices and by using a richer form of unification for probing their structures. These additions have important meta-programming applications but they also pose non-trivial implementation problems. One issue concerns the machine representation of lambda terms suitable to their intended use: an adequate encoding must facilitate comparison operations over terms in addition to supporting the usual reduction computation. Another aspect relates to the treatment of a unification operation that has a branching character and that sometimes calls for the delaying of the solution of unification problems. A final issue concerns the execution of goals whose structures become apparent only in the course of computation. These various problems are exposed in this paper and solutions to them are described. A satisfactory representation for lambda terms is developed by exploiting the nameless notation of de Bruijn as well as explicit encodings of substitutions. Special mechanisms are molded into the structure of traditional Prolog implementations to support branching in unification and carrying of unification problems over other computation steps; a premium is placed in this context on exploiting determinism and on emulating usual first-order behaviour. An extended compilation model is presented that treats higher-order unification and also handles dynamically emergent goals. The ideas described here have been employed in the Teyjus implementation of the λProlog language, a fact that is used to obtain a preliminary assessment of their efficacy.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

A Fast and Self-Repairing Genetic Programming Designer for Logic Circuits

Usually, important parameters in the design and implementation of combinational logic circuits are the number of gates, transistors, and the levels used in the design of the circuit. In this regard, various evolutionary paradigms with different competency have recently been introduced. However, while being advantageous, evolutionary paradigms also have some limitations including: a) lack of con...

متن کامل

Higher-order Aspects of Logic Programming

Are higher-order extensions to logic programming needed? We answer this question in the negative by showing that higher-order features are already available in pure logic programming. It is demonstrated that higher-order lambda calculus-based languages can be compositionally embedded in logic programming languages preserving their semantics and abstraction facilities. Further, we show that such...

متن کامل

Implementation Considerations for Higher-order Features in Logic Programming Implementation Considerations for Higher-order Features in Logic Programming Running Title: Higher-order Features in Logic Programming

This paper examines implementation problems that arise from providing for aspects of higher-order programming within and enhancing the metalanguage abilities of logic programming. One issue of concern is a representation for the simply-typed lambda terms that replace the usual rst-order terms as data structures; this representation must support an eecient realization of-conversion operations on...

متن کامل

Use of a mixed integer programming model to achieve an optimum size of blast block in open-pit mining with regard to size of mineable block using fuzzy logic approach

In this paper, we present an integrated model to find the optimum size of blast block that uses (i) a multi-criteria decision-making method to specify the applicable size of the mineable block; (ii) a linear programming method for the selection of the blasted areas to be excavated and in deciding the quantity of ores and wastes to be mined from each one of the selected blocks. These two methods...

متن کامل

Checking foundational proof certificates for first-order logic

We present the design philosophy of a proof checker based on a notion of foundational proof certificates. At the heart of this design is a semantics of proof evidence that arises from recent advances in the theory of proofs for classical and intuitionistic logic. That semantics is then performed by a (higher-order) logic program: successful performance means that a formal proof of a theorem has...

متن کامل

Higher-order logic programming in Prolog

This is yet another paper which tells logic programmers what functional programmers have known and practiced for a long time: \higher order" programming is the way to go. How is this paper di erent from some of the others? First, we point out that call/N is not the way to go, despite its recent popularity as the primitive to use for higher order logic programming. Second, we use standard Prolog...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:
  • TPLP

دوره 5  شماره 

صفحات  -

تاریخ انتشار 2005